Windows Console
This backend replies on the following Windows API for various console related tasks:
API | Task(s) |
---|---|
GetStdHandle(...) |
To gain access to stdin and stdout |
GetConsoleScreenBufferInfo(...) |
To get information about console size and position |
GetConsoleMode(...) |
To get information about the current mode of the console |
WriteConsoleOutputW(...) |
To write a buffer of characters directly into the console |
ReadConsoleInputW(...) |
To read input events (keys, mouse, resizing, console closing) |
SetConsoleTitleW(...) |
To set the title (caption) of the console |
SetConsoleScreenBufferSize(...) |
To resize the console to a specific width and heighr |
SetConsoleCursorInfo(...) |
To move the caret (cursor) into a specific position of the console |
For clipboard based operations, it relies on the following APIs:
- OpenClipboard
- EmptyClipboard
- CloseClipboard
- SetClipboardData
- GetClipboardData
- IsClipboardFormatAvailable
Remarks: For this type of backend to work, there is no need for a 3rd party crate (everything is done via FFI and direct API calls).
Limitations
Windows uses WTF-16 (that does not encode the full range of unicode characters). While unicode surrogates are supported, depending on the version of windows some characters (usually with a code higher than 0xFFFF) might not be disply accurtely or my move the line they are down into to the left.